6bd3301ba1a5a63c244d33449bdccf6115f1755e,components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/FallbackTypeConverter.java,FallbackTypeConverter,unmarshal,#Unmarshaller#Exchange#Object#,208
Before Change
protected Object unmarshal(Unmarshaller unmarshaller, Exchange exchange, Object value) throws JAXBException, UnsupportedEncodingException, XMLStreamException {
unmarshallerLock.lock();
try {
if (value instanceof XMLStreamReader) {
XMLStreamReader xmlReader = (XMLStreamReader) value;
return unmarshaller.unmarshal(xmlReader);
} else if (value instanceof InputStream) {
if (needFiltering(exchange)) {
return unmarshaller.unmarshal(new NonXmlFilterReader(new InputStreamReader((InputStream)value, IOHelper.getCharsetName(exchange))));
}
return unmarshaller.unmarshal((InputStream)value);
} else if (value instanceof Reader) {
Reader reader = (Reader)value;
if (needFiltering(exchange)) {
if (!(value instanceof NonXmlFilterReader)) {
reader = new NonXmlFilterReader((Reader)value);
}
}
return unmarshaller.unmarshal(reader);
} else if (value instanceof Source) {
return unmarshaller.unmarshal((Source)value);
}
} finally {
unmarshallerLock.unlock();
After Change
}
protected Object unmarshal(Unmarshaller unmarshaller, Exchange exchange, Object value) throws JAXBException, UnsupportedEncodingException, XMLStreamException {
try {
XMLStreamReader xmlReader = null;
if (value instanceof XMLStreamReader) {
xmlReader = (XMLStreamReader) value;
} else if (value instanceof InputStream) {
if (needFiltering(exchange)) {
xmlReader = staxConverter.createXMLStreamReader(new NonXmlFilterReader(new InputStreamReader((InputStream)value, IOHelper.getCharsetName(exchange))));
} else {
xmlReader = staxConverter.createXMLStreamReader((InputStream)value, exchange);
}
} else if (value instanceof Reader) {
Reader reader = (Reader)value;
if (needFiltering(exchange)) {
if (!(value instanceof NonXmlFilterReader)) {
reader = new NonXmlFilterReader((Reader)value);
}
}
xmlReader = staxConverter.createXMLStreamReader(reader);
} else if (value instanceof Source) {
xmlReader = staxConverter.createXMLStreamReader((Source)value);
} else {
throw new IllegalArgumentException("Cannot convert from " + value.getClass());
}